package com.scorpio.scbasics.rediostation.service.impl;


import com.scorpio.common.annotation.DataSource;
import com.scorpio.common.core.domain.Result;
import com.scorpio.common.enums.DataSourceType;
import com.scorpio.common.service.impl.BaseServiceImpl;
import com.scorpio.common.utils.bean.BeanUtils;
import com.scorpio.scbasics.rediostation.domain.BizCategoryEntity;
import com.scorpio.scbasics.rediostation.dto.BizCategoryDTO;
import com.scorpio.scbasics.rediostation.mapper.BizCategoryMapper;
import com.scorpio.scbasics.rediostation.service.IBizCategoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

/**
 * 【请填写功能名称】Service业务层处理
 *
 * @author scorpio
 * @date 2020-10-14
 */
@Service
@DataSource(DataSourceType.SLAVE)
public class BizCategoryServiceImpl extends BaseServiceImpl<BizCategoryMapper, BizCategoryEntity> implements IBizCategoryService {

    @Autowired
    private BizCategoryMapper bizCategoryMapper;

    /**
     * 查询【请填写功能名称】
     *
     * @param id 【请填写功能名称】ID
     * @return 【请填写功能名称】
     */
    @Override
    public BizCategoryEntity selectById(Long id) {
        return baseDao.selectById(id);
    }

    /**
     * 查询【请填写功能名称】列表
     *
     * @param entity 【请填写功能名称】
     * @return 【请填写功能名称】
     */
    @Override
    public List<BizCategoryEntity> selectList(BizCategoryEntity entity) {
        return baseDao.list(entity);
    }

    /**
     * 新增【请填写功能名称】
     *
     * @param entity 【请填写功能名称】
     * @return 结果
     */
    @Override
    public int save(BizCategoryEntity entity) {
        return baseDao.insert(entity);
    }

    /**
     * 修改【请填写功能名称】
     *
     * @param entity 【请填写功能名称】
     * @return 结果
     */
    @Override
    public int update(BizCategoryEntity entity) {
        return baseDao.updateById(entity);
    }

    /**
     * 批量删除【请填写功能名称】
     *
     * @param ids 需要删除的【请填写功能名称】ID
     * @return 结果
     */
    @Override
    public int deleteByIds(Long[] ids) {
        return baseDao.deleteBatchIds(Arrays.asList(ids));
    }

    /**
     * 删除【请填写功能名称】信息
     *
     * @param id 【请填写功能名称】ID
     * @return 结果
     */
    @Override
    public int deleteById(Long id) {
        return baseDao.deleteById(id);
    }

    /**
     * 获取电台分类
     *
     * @return
     */
    @Override
    public Result queryCategory() {
        List<BizCategoryEntity> bizCategoryEntityList = bizCategoryMapper.queryCategory();
        List list = new ArrayList<>(bizCategoryEntityList.size());
        for (BizCategoryEntity bizCategoryEntity : bizCategoryEntityList) {
            BizCategoryDTO bizCategoryDTO = new BizCategoryDTO();
            BeanUtils.copyBeanProp(bizCategoryDTO, bizCategoryEntity);
            bizCategoryDTO.setCreate_time(bizCategoryEntity.getCreateTime());
            bizCategoryDTO.setLastupdate_time(bizCategoryEntity.getLastupdateTime());
            bizCategoryDTO.setOperator_id(bizCategoryEntity.getOperatorId());
            list.add(bizCategoryDTO);

        }
        HashMap hashMap = new HashMap();
        hashMap.put("list", list);
        return Result.success(hashMap);
    }
}
